package com.ssy.lingxi.product.api.model.request.warehouse;

import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * 单据添加请求实体
 *
 * @author wrc
 * @date 2020/7/7
 */
@Data
public class InvoicesAddRequest {
    /**
     * 单据编号
     */
    private String invoicesNo;

    /**
     * 单据类型编号
     */
    //  @NotEmpty(message = "单据类型编号不能为空")
    private String invoicesTypeCode;
    /**
     * 单据摘要
     */
    //  @NotEmpty(message = "单据摘要不能为空")
    private String invoicesAbstract;
    /**
     * 会员名称
     */
    //   @NotEmpty(message = "会员名称不能为空")
    private String memberName;
    /**
     * 对应仓库ID
     */
    //  @NotNull(message = "对应仓库ID不能为空")
    private Long inventoryId;

    /**
     * 对应仓库人员
     */
    //  @NotEmpty(message = "对应仓库人员不能为空")
    private String inventoryRole;
    /**
     * 单据时间
     */
    //   @NotNull(message = "单据时间不能为空")
    private Long transactionTime;

    /**
     * 订单号
     */
    //  @NotEmpty(message = "订单号不能为空")
    private String orderNo;

    /**
     * 交付地址ID
     */
    private Long deliveryAddresId;

    /**
     * 交付地址收货人名字
     */
    private String receiverName;


    /**
     * 交付地址收是否默认0.否 1.是
     */
    private Integer isDefault;

    /**
     * 交付地址详情
     */
    private String fullAddress;

    /**
     * 交付地址 联系电话
     */
    private String phone;

    /**
     * 提货方式:1.物流 2.自提 3.无需配送
     */
    //   @NotNull(message = "提货方式不能为空")
    private Integer deliveryType;
    /**
     * 单据明细
     */
    @Valid
    @NotEmpty(message = "货品不能为空")
    @Size(min = 1, message = "至少有一个货品")
    private List<InvoicesDetailsRequest> invoicesDetailsRequests;

    /**
     * 单据时间
     */
    //  @NotNull(message = "关联单据ID不能为空")
    // @ApiModelProperty(value = "关联单据ID",required = true)
    private Long relevanceInvoicesId;
    /**
     * 单据时间
     */
    //   @NotNull(message = "对应单据类型不能为空")
    //  @ApiModelProperty(value = "对应单据:1.订单 2.换货申请单 3.退货申请单 4.生产通知单 5.内部单据",required = true)
    private Integer relevanceInvoices;


    /**
     * 供应会员名字
     */
//    @NotEmpty(message = "供应会员名字不能为空")
    private String supplyMembersName;

    /**
     * 供应会员Id
     */
    //  @NotNull(message = "供应会员Id不能为空")
    private Long supplyMembersId;

    /**
     * 供应会员Id
     */
    //  @NotNull(message = "供应会员Id不能为空")
    private Long supplyMembersRoleId;

    /**
     * 单据类型名字
     */
    private String invoicesType;


    /**
     * 单据类型ID
     */
    // @NotNull(message = "单据类型ID不能为空")
    private Long invoicesTypeId;

    /**
    *请求来源： 1.进销存 2.单据
    */
    @NotNull(message = "请求来源不能为空")
    private Integer source;
}
